1. Field of the Invention
The invention is related to the field of communications and, in particular, to delivery of text messages.
2. Statement of the Problem
Text messaging has become a very popular mode of communication in many mobile networks, such as a Public Land Mobile Network (PLMN). One example of text messaging is Short Message Service (SMS), which is a communication protocol allowing the exchange of short text messages (i.e., 160 characters) between mobile devices. While the term “text message” traditionally referred to text-only messages sent using SMS, it has been extended to include multimedia messages, such as images, video, sound content, etc. The multimedia messages may be sent using Multimedia Service (MMS) protocol. Often times, mobile users more frequently use text messaging for communication than voice calls.
Text messages are transmitted over signaling channels of a mobile network, such as over SS7 channels. An SMS Center (SMSC) in the mobile network has a store-and-forward (SFD) system for delivering text messages to their destinations over the signaling channels. Upon initially receiving a text message, the SFD system first stores (persistently) the text message, and then initiates a delivery attempt for the text message. If the first delivery attempt fails, then the SFD system enters a retry process which will retry delivery a predefined number of times before the text message is discarded.
A mobile device has an associated home mobile network, which comprises the network or portion of the network in which a subscriber profile is stored and maintained for the mobile device. Text messaging is provided to the mobile device through a home message center, such as a home SMSC or a home MMSC. The home message center is implemented in the home mobile network, and handles Mobile Originated (MO) text messages from the mobile device and Mobile Terminated (MT) text messages destined for the mobile device. The following illustrates an example of delivering a MT text message to a mobile device.
To start, the home message center receives the text message from its originator. A SFD system in the home message center receives and stores the text message. The SFD system then queries a Home Location Register (HLR) in the home mobile network to identify routing information for the text message. The SFD system then attempts to deliver the text message to the mobile device based on the routing information by sending the text message to a Mobile Switching Center (MSC) in the home and/or roaming mobile network that is serving the mobile device. The serving MSC attempts to forward the text message to the mobile device. If the first delivery attempt fails (e.g., the mobile device is temporarily unavailable), then the serving MSC sends a return result to the home message center indicating the failed delivery. The SFD system then queues the text message for a future retry.
When the delivery attempt fails, the serving MSC (or the HLR) sets a message waiting indicator flag that indicates to the serving MSC that a text message is waiting in the home message center. When the mobile device becomes available, the serving MSC detects this event and its internal logic processes the message waiting indicator flag to see if it is set. If the flag is set (as in this example), then the serving MSC sends a notification (e.g., an SMS notification) to the home message center that the mobile device is now available. After receiving the notification from the serving MSC, the SFD system in the home message center retries delivery of the text message to the mobile device.
Technology in mobile networks has advanced such that text messages may be delivered to a mobile device from multiple message centers other than the home message center. These “other” message centers, which are referred to herein as “external” or “non-home” message centers, may attempt to deliver text messages to the mobile device directly without going through the home message center. Some examples of external message centers include a commercial broadcast message center, an emergency broadcast message center, a voting message center, content applications, payment servers, location servers, etc. Some of these external message centers may be referred to generally as External Short Messaging Entities (ESME).
Problems may occur when an external message center attempts to deliver a text message to a mobile device, but the delivery attempt fails because the mobile device is temporarily unavailable. Presently, when the delivery attempt fails, the serving MSC (or the HLR) sets a single message waiting indicator flag. The flag is set so that the serving MSC is able to notify the home message center when the mobile device becomes available. If the serving MSC determines that the mobile device becomes available, the serving MSC sends a notification to the home message center so that the home message center may initiate a retry. The serving MSC is programmed with a static routing address for the home message center, and sends the notification automatically to the static routing address when the message waiting indicator flag is set and the mobile device becomes available. Thus, the home message center is the only entity that is notified of the mobile device becoming available. The serving MSC is not able to notify external message centers of the mobile device becoming available.